Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

VB 2005 - Μετατροπή χαρακτήρων σε textbox

Îåêßíçóå áðü ôï ìÝëïò Ευθύμης Δημόπουλος. Τελευταία δημοσίευση από το μέλος Ευθύμης Δημόπουλος στις 08-12-2006, 13:41. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-12-2006, 10:58 21809

    Confused [8-)] VB 2005 - Μετατροπή χαρακτήρων σε textbox

    Καλημέρα,

    αντιμετωπίζω το εξής "πρόβλημα"
    δουλεύω ένα project σε

    visual basic 2005 express edition
    & access 2000

    θέλω λοιπόν κατά την πληκτρολόγηση (keypress) σε txtbox
    o χαρακτήρας "α" να μετατρέπεται σε "Α"
    o χαρακτήρας "ά" να μετατρέπεται σε "Α"
    και να μη δέχονται πχ κάποιους χαρακτήρες
    κ.λπ.

    σε ένα project σε vb6 είχα το εξής:

    ===============================================================
    Private Sub Address_KeyPress(KeyAscii As Integer)
    Lchar = Chr(KeyAscii)
    Select Case Lchar
    Case Is = "'": KeyAscii = 0
    Case Is = "Ά": KeyAscii = Asc(UCase("Α"))
    Case Is = "Έ": KeyAscii = Asc(UCase("Ε"))
    Case Is = "Ή": KeyAscii = Asc(UCase("Η"))
    Case Is = "Ί": KeyAscii = Asc(UCase("Ι"))
    Case Is = "Ό": KeyAscii = Asc(UCase("Ο"))
    Case Is = "Ώ": KeyAscii = Asc(UCase("Ω"))
    Case Is = "Ύ": KeyAscii = Asc(UCase("Υ"))
    Case Is = "ά": KeyAscii = Asc(UCase("Α"))
    Case Is = "έ": KeyAscii = Asc(UCase("Ε"))
    Case Is = "ή": KeyAscii = Asc(UCase("Η"))
    Case Is = "ί": KeyAscii = Asc(UCase("Ι"))
    Case Is = "ό": KeyAscii = Asc(UCase("Ο"))
    Case Is = "ώ": KeyAscii = Asc(UCase("Ω"))
    Case Is = "ύ": KeyAscii = Asc(UCase("Υ"))
    Case Else: KeyAscii = Asc(UCase(Chr(KeyAscii)))
    End Select
    End Sub

    =================================================================

    ψάχνωντας στο ιντερνετ

    βρήκα ένα συνδυασμό του keydown & keypress event
    που "κλειδώνουν" πχ τους αριθμούς ωστε να μην εισάγονται στο txtbox

    ==================================================================
    Private Sub txtQuantity_KeyDown(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtQuantity.KeyDown

            ' Handle the KeyDown event to determine the type of character entered into the control.
            ' Initialize the flag to false.
            nonNumberEntered = False

            ' Determine whether the keystroke is a number from the top of the keyboard.
            If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then
                ' Determine whether the keystroke is a number from the keypad.
                If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then
                    ' Determine whether the keystroke is a backspace.
                    If e.KeyCode <> Keys.Back Then
                        ' A non-numerical keystroke was pressed.
                        ' Set the flag to true and evaluate in KeyPress event.
                        nonNumberEntered = True
                    End If
                End If
            End If
        End Sub 'txtQuantity_KeyDown


       
        Private Sub txtQuantity_KeyPress(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtQuantity.KeyPress
            ' This event occurs after the KeyDown event and can be used
            ' to prevent characters from entering the control.
            ' Check for the flag being set in the KeyDown event.

            If nonNumberEntered = True Then
                ' Stop the character from being entered into the control since it is non-numerical.
                e.Handled = True
            End If
        End Sub 'txtQuantity_KeyPress
    =================================================================

    για τον χαρακτήρα "Α" αντιστοιχεί το Keys.A
    πως λοιπόν μπορώ να δουλέψω πχ για το χαρακτήρα "ά";
    πως λοιπόν μπορώ να δουλέψω πχ για το χαρακτήρα "α";

    ελπίζω να γίνομαι κατανοητός

    ευχαριστώ πολύ...

  •  07-12-2006, 14:01 21827 σε απάντηση της 21809

    Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    Εγώ έχω μία δική μου Function όπου πρώτα κάνει Uppercase και μετά ελέγχο μόνο τον ένα χαρακτήρα και όχι ξεχωριστά τον "Ά" από τον "ά"...

    Για την άλλη υλοποίηση πρέπει να την δω λίγο... Αν και μπορείς να πέρνεις αντί για Keys.'A... (που δεν υπάρχει ) τον ASCII κωδικό του... έτσι και αλλιώς τα Keys. είναι constants...
    -------------------------------
    Κ. Γιαγιάς

    Θα ήθελα να είμαι μέσα στην φωτογραφία και όχι εδώ!!!!

    http://beastie06.wordpress.com
  •  07-12-2006, 14:46 21832 σε απάντηση της 21827

    Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox



    Αν και μπορείς να πέρνεις αντί για Keys.'A... (που δεν υπάρχει ) τον ASCII κωδικό του...


    με ποιον τρόπο μπορείς να πάρεις τον ascii κωδικό;


          Asc(e.KeyCode)

    αυτό πάντως δε μου δουλεύει...
  •  07-12-2006, 15:11 21833 σε απάντηση της 21832

    Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    to e.KeyCode είναι αριθμός το ASC ("Ά") είναι πάλι αριθμός...

    If e.KeyCode ASC ("Ώ") Then

    αυτό το γράφω για παράδειγμα για να δεις πως συνδυαζονται.. Δεν θυμάμαι τώρα τα νούμερα των Ελληνικών κεφαλαίων γραμμάτων στο ASCII table. Δεν νομίζω όμως το παραπάνω να δουλεύει εκτός αν οι τονούμενοι ελληνικοί χαρακτήρες είναι συνεχόμενοι...
    -------------------------------
    Κ. Γιαγιάς

    Θα ήθελα να είμαι μέσα στην φωτογραφία και όχι εδώ!!!!

    http://beastie06.wordpress.com
  •  07-12-2006, 15:39 21837 σε απάντηση της 21833

    Απ: Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    με το keyCode αντιλαμβάνεται ποιο πλήκτρο έχει χτυπήσει ο χρήστης

    επιστρέφει τον ίδιο αριθμό και όταν είναι κεφαλαίο και όταν είναι μικρό

    το αν είναι μικρό ή κεφαλαίο το γράμμα πως μπορεί να ανιχνευτει;
  •  08-12-2006, 00:09 21861 σε απάντηση της 21837

    Απ: Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    Και γιατί να μην γυρίζεις πάντα το κεφαλαίο? Η μετατροπή δεν κοστίζει σχεδόν τίποτα σε χρόνο.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-12-2006, 00:19 21862 σε απάντηση της 21861

    Απ: Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    Καλά το έλεγα ότι κάπου το είδα. Το TextBox έχει ένα property CharacterCasing, το οποίο σου επιτρέπει να ορίσεις αν το textbox θα περιέχει μόνο μικρά ή μόνο κεφαλαία γράμματα.

    Επίσης, στο KeyDown μπορείς να θέσεις το e.SuppressKeyPress = True για να εμποδίσεις την επεξεργασία ενός χαρακτήρα. Δεν είναι ανάγκη να θέτεις flags για το KeyPress
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-12-2006, 09:43 21867 σε απάντηση της 21862

    Απ: Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

     pkanavos wrote:
    Καλά το έλεγα ότι κάπου το είδα. Το TextBox έχει ένα property CharacterCasing, το οποίο σου επιτρέπει να ορίσεις αν το textbox θα περιέχει μόνο μικρά ή μόνο κεφαλαία γράμματα.

    Επίσης, στο KeyDown μπορείς να θέσεις το e.SuppressKeyPress = True για να εμποδίσεις την επεξεργασία ενός χαρακτήρα. Δεν είναι ανάγκη να θέτεις flags για το KeyPress


    χμμ
    αυτό για το property ομολογώ δε το ήξερα...ευχαριστώ
    θα το κοιτάξω, εν τω μεταξύ βρήκα το εξής και το δουλεύω...

    Dim xe As Short
            xe = Microsoft.VisualBasic.AscW(e.KeyChar)
            xe = IIf(xe >= 913 And xe <= 937, xe, 0)
            e.KeyChar = Microsoft.VisualBasic.ChrW(xe)
    στο keypress event

    βέβαια δεν ξέρω αν στέκει και αν θα μου δημιουργήσει προβλήματα
    οι ελληνικοί χαρακτήρες είναι από 913-937 και 945-969...

     ευχαριστώ πάντως Παναγιώτη θα το ερευνήσω...
  •  08-12-2006, 10:26 21868 σε απάντηση της 21867

    Απ: Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    Δεν θα έχεις, επειδή χρησιμοποιείς την AscW και όχι την Asc. Καλύτερα όμως θα ήταν να περνάς απευθείας τους χαρακτήρες, π.χ. το Char Ω γράφεται "Ω"C. Το C στο τέλος λέει στην VB ότι πρόκειται για Char και όχι String
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-12-2006, 13:41 21888 σε απάντηση της 21868

    Απ: Re: Απ: Re: VB 2005 - Μετατροπή χαρακτήρων σε textbox

    Ευχαριστώ πολύ για τη βοήθεια


    νομίζω το έλυσα...

    eft

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems